<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Utilities</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="index.html" title="The gdk-pixbuf Library">
<link rel="up" href="rn01.html" title="API Reference">
<link rel="prev" href="gdk-pixbuf-gdk-pixbuf-from-drawables.html" title="Drawables to Pixbufs">
<link rel="next" href="gdk-pixbuf-animation.html" title="Animations">
<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="reference" href="rn01.html" title="API Reference">
<link rel="reference" href="rn02.html" title="Tools Reference">
<link rel="index" href="api-index-full.html" title="Index of all symbols">
<link rel="index" href="api-index-deprecated.html" title="Index of deprecated symbols">
<link rel="index" href="api-index-2-2.html" title="Index of new symbols in 2.2">
<link rel="index" href="api-index-2-4.html" title="Index of new symbols in 2.4">
<link rel="index" href="api-index-2-6.html" title="Index of new symbols in 2.6">
<link rel="index" href="api-index-2-8.html" title="Index of new symbols in 2.8">
<link rel="index" href="api-index-2-10.html" title="Index of new symbols in 2.10">
<link rel="index" href="api-index-2-12.html" title="Index of new symbols in 2.12">
<link rel="index" href="api-index-2-14.html" title="Index of new symbols in 2.14">
<link rel="appendix" href="apa.html" title="Appendix A. Porting applications from Imlib to gdk-pixbuf">
<link rel="appendix" href="license.html" title="Appendix B. License">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="gdk-pixbuf-gdk-pixbuf-from-drawables.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="rn01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">The gdk-pixbuf Library</th>
<td><a accesskey="n" href="gdk-pixbuf-animation.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gdk-pixbuf-util.synopsis" class="shortcut">Top</a>
                 | 
                <a href="#gdk-pixbuf-util.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry" lang="en">
<a name="gdk-pixbuf-util"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gdk-pixbuf-util.top_of_page"></a>Utilities</span></h2>
<p>Utilities — Utility and miscellaneous convenience functions.</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="gdk-pixbuf-util.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">

#include &lt;gdk-pixbuf/gdk-pixbuf.h&gt;

<a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *         <a class="link" href="gdk-pixbuf-util.html#gdk-pixbuf-add-alpha" title="gdk_pixbuf_add_alpha ()">gdk_pixbuf_add_alpha</a>                (const <a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *pixbuf,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a> substitute_color,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guchar"
>guchar</a> r,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guchar"
>guchar</a> g,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guchar"
>guchar</a> b);
void                <a class="link" href="gdk-pixbuf-util.html#gdk-pixbuf-copy-area" title="gdk_pixbuf_copy_area ()">gdk_pixbuf_copy_area</a>                (const <a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *src_pixbuf,
                                                         int src_x,
                                                         int src_y,
                                                         int width,
                                                         int height,
                                                         <a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *dest_pixbuf,
                                                         int dest_x,
                                                         int dest_y);
void                <a class="link" href="gdk-pixbuf-util.html#gdk-pixbuf-saturate-and-pixelate" title="gdk_pixbuf_saturate_and_pixelate ()">gdk_pixbuf_saturate_and_pixelate</a>    (const <a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *src,
                                                         <a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *dest,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"
>gfloat</a> saturation,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a> pixelate);
<a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *         <a class="link" href="gdk-pixbuf-util.html#gdk-pixbuf-apply-embedded-orientation" title="gdk_pixbuf_apply_embedded_orientation ()">gdk_pixbuf_apply_embedded_orientation</a>
                                                        (<a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *src);
void                <a class="link" href="gdk-pixbuf-util.html#gdk-pixbuf-fill" title="gdk_pixbuf_fill ()">gdk_pixbuf_fill</a>                     (<a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *pixbuf,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"
>guint32</a> pixel);
</pre>
</div>
<div class="refsect1" lang="en">
<a name="gdk-pixbuf-util.description"></a><h2>Description</h2>
<p>
    These functions provide miscellaneous utilities for manipulating
    pixbufs.  The pixel data in pixbufs may of course be manipulated
    directly by applications, but several common operations can be
    performed by these functions instead.
  </p>
</div>
<div class="refsect1" lang="en">
<a name="gdk-pixbuf-util.details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="gdk-pixbuf-add-alpha"></a><h3>gdk_pixbuf_add_alpha ()</h3>
<pre class="programlisting"><a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *         gdk_pixbuf_add_alpha                (const <a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *pixbuf,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a> substitute_color,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guchar"
>guchar</a> r,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guchar"
>guchar</a> g,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guchar"
>guchar</a> b);</pre>
<p>
Takes an existing pixbuf and adds an alpha channel to it.
If the existing pixbuf already had an alpha channel, the channel
values are copied from the original; otherwise, the alpha channel
is initialized to 255 (full opacity).
</p>
<p>
If <em class="parameter"><code>substitute_color</code></em> is <a
href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE--CAPS"
><code class="literal">TRUE</code></a>, then the color specified by (<em class="parameter"><code>r</code></em>, <em class="parameter"><code>g</code></em>, <em class="parameter"><code>b</code></em>) will be
assigned zero opacity. That is, if you pass (255, 255, 255) for the
substitute color, all white pixels will become fully transparent.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>pixbuf</code></em> :</span></p></td>
<td> A <a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>substitute_color</code></em> :</span></p></td>
<td> Whether to set a color to zero opacity.  If this
is <a
href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE--CAPS"
><code class="literal">FALSE</code></a>, then the (<em class="parameter"><code>r</code></em>, <em class="parameter"><code>g</code></em>, <em class="parameter"><code>b</code></em>) arguments will be ignored.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>r</code></em> :</span></p></td>
<td> Red value to substitute.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
<td> Green value to substitute.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
<td> Blue value to substitute.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> A newly-created pixbuf with a reference count of 1.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="gdk-pixbuf-copy-area"></a><h3>gdk_pixbuf_copy_area ()</h3>
<pre class="programlisting">void                gdk_pixbuf_copy_area                (const <a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *src_pixbuf,
                                                         int src_x,
                                                         int src_y,
                                                         int width,
                                                         int height,
                                                         <a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *dest_pixbuf,
                                                         int dest_x,
                                                         int dest_y);</pre>
<p>
Copies a rectangular area from <em class="parameter"><code>src_pixbuf</code></em> to <em class="parameter"><code>dest_pixbuf</code></em>.  Conversion of
pixbuf formats is done automatically.
</p>
<p>
If the source rectangle overlaps the destination rectangle on the
same pixbuf, it will be overwritten during the copy operation.
Therefore, you can not use this function to scroll a pixbuf.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>src_pixbuf</code></em> :</span></p></td>
<td> Source pixbuf.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>src_x</code></em> :</span></p></td>
<td> Source X coordinate within <em class="parameter"><code>src_pixbuf</code></em>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>src_y</code></em> :</span></p></td>
<td> Source Y coordinate within <em class="parameter"><code>src_pixbuf</code></em>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
<td> Width of the area to copy.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
<td> Height of the area to copy.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>dest_pixbuf</code></em> :</span></p></td>
<td> Destination pixbuf.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>dest_x</code></em> :</span></p></td>
<td> X coordinate within <em class="parameter"><code>dest_pixbuf</code></em>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>dest_y</code></em> :</span></p></td>
<td> Y coordinate within <em class="parameter"><code>dest_pixbuf</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="gdk-pixbuf-saturate-and-pixelate"></a><h3>gdk_pixbuf_saturate_and_pixelate ()</h3>
<pre class="programlisting">void                gdk_pixbuf_saturate_and_pixelate    (const <a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *src,
                                                         <a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *dest,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gfloat"
>gfloat</a> saturation,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a> pixelate);</pre>
<p>
Modifies saturation and optionally pixelates <em class="parameter"><code>src</code></em>, placing the result in
<em class="parameter"><code>dest</code></em>. <em class="parameter"><code>src</code></em> and <em class="parameter"><code>dest</code></em> may be the same pixbuf with no ill effects.  If
<em class="parameter"><code>saturation</code></em> is 1.0 then saturation is not changed. If it's less than 1.0,
saturation is reduced (the image turns toward grayscale); if greater than
1.0, saturation is increased (the image gets more vivid colors). If <em class="parameter"><code>pixelate</code></em>
is <a
href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE--CAPS"
><code class="literal">TRUE</code></a>, then pixels are faded in a checkerboard pattern to create a
pixelated image. <em class="parameter"><code>src</code></em> and <em class="parameter"><code>dest</code></em> must have the same image format, size, and
rowstride.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
<td> source image
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
<td> place to write modified version of <em class="parameter"><code>src</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>saturation</code></em> :</span></p></td>
<td> saturation factor
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>pixelate</code></em> :</span></p></td>
<td> whether to pixelate
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="gdk-pixbuf-apply-embedded-orientation"></a><h3>gdk_pixbuf_apply_embedded_orientation ()</h3>
<pre class="programlisting"><a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *         gdk_pixbuf_apply_embedded_orientation
                                                        (<a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *src);</pre>
<p>
Takes an existing pixbuf and checks for the presence of an
associated "orientation" option, which may be provided by the 
jpeg loader (which reads the exif orientation tag) or the 
tiff loader (which reads the tiff orientation tag, and
compensates it for the partial transforms performed by 
libtiff). If an orientation option/tag is present, the
appropriate transform will be performed so that the pixbuf
is oriented correctly.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
<td> A <a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> A newly-created pixbuf, or a reference to the
input pixbuf (with an increased reference count).

Since 2.12
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="gdk-pixbuf-fill"></a><h3>gdk_pixbuf_fill ()</h3>
<pre class="programlisting">void                gdk_pixbuf_fill                     (<a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf">GdkPixbuf</a> *pixbuf,
                                                         <a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint32"
>guint32</a> pixel);</pre>
<p>
Clears a pixbuf to the given RGBA value, converting the RGBA value into
the pixbuf's pixel format. The alpha will be ignored if the pixbuf
doesn't have an alpha channel.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>pixbuf</code></em> :</span></p></td>
<td> a <a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>pixel</code></em> :</span></p></td>
<td> RGBA pixel to clear to
        (0xffffffff is opaque white, 0x00000000 transparent black)
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1" lang="en">
<a name="gdk-pixbuf-util.see-also"></a><h2>See Also</h2>
<p>
    <a class="link" href="gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>
  </p>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.11</div>
</body>
</html>
